package com.blog.blog.service;

import java.util.Map;

/**
 * 告警服务接口
 */
public interface AlertService {
    
    /**
     * 发送系统告警
     * @param level 告警级别 (INFO, WARN, ERROR, CRITICAL)
     * @param title 告警标题
     * @param message 告警消息
     * @param details 详细信息
     */
    void sendAlert(String level, String title, String message, Map<String, Object> details);
    
    /**
     * 检查并发送系统健康告警
     */
    void checkAndSendHealthAlerts();
    
    /**
     * 发送内存使用告警
     * @param usedPercent 内存使用百分比
     */
    void sendMemoryAlert(double usedPercent);
    
    /**
     * 发送磁盘空间告警
     * @param freePercent 剩余空间百分比
     */
    void sendDiskSpaceAlert(double freePercent);
    
    /**
     * 发送数据库连接告警
     * @param error 错误信息
     */
    void sendDatabaseAlert(String error);
    
    /**
     * 发送Redis连接告警
     * @param error 错误信息
     */
    void sendRedisAlert(String error);
}
